package com.etime.shycourse.code;


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * @ClassName : MyCode  //类名
 * @Description : 代码自动生成  //描述
 * @Author : W //作者
 * @Date: 2021/6/16  16:13
 */
public class MyCode {
    public static void main(String[] args) {
        // 需要构建一个 代码自动生成器 对象
        AutoGenerator mpg = new AutoGenerator();
        // 配置策略
        // 1、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/shy-course" + "/src/main/java");
        gc.setAuthor("wb");
        gc.setOpen(false);
        gc.setFileOverride(false);
        // 是否覆盖
        gc.setServiceName("%sServices");
        // 去Service的I前缀
        // id自动填充 管理
        // gc.setIdType (IdType.ID_WORKER);
        // gc.setDateType (DateType.ONLY_DATE);
        // gc.setSwagger2(true); 实体属性 Swagger2 注解
        gc.setSwagger2(true);
        mpg.setGlobalConfig(gc);
        //2、设置数据源
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://101.34.74.155:3306/etimeshy?useSSL=false&useUnicode=true&characterEncoding=utf-8");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);
        //3、包的配置
        PackageConfig pc = new PackageConfig();
        // 设置模块名称
        pc.setModuleName("shycourse");
        // 设置父级
        pc.setParent("com.etime");
        pc.setEntity("pojo");
        pc.setMapper("dao");
        pc.setXml("mappers");
        pc.setService("services.salers.interfaces");
        pc.setServiceImpl("services.salers.impl");
        pc.setController("controller.salers");
        mpg.setPackageInfo(pc);
        //4、策略配置
        StrategyConfig strategy = new StrategyConfig();
        //  strategy.setInclude ("sys_user");
        //  strategy.setInclude ("coursetype"); 数据库中的数据表
        //strategy.setInclude ("chapter");
        //strategy.setInclude ("lesson");
        //strategy.setInclude ("mediabank");
        //strategy.setInclude ("sysbanner");
        //strategy.setInclude ("orders"); //订单
        //strategy.setInclude ("orderdetail"); //订单明细
        // 微信小程序  前置-课程详情页面（微信端）开始
        //strategy.setInclude ("sysuser");  //用户表
        //strategy.setInclude ("teacher");   //教师表
        //strategy.setInclude ("course");  //课程表
        //strategy.setInclude ("organization"); //机构表
        //strategy.setInclude ("chapter"); //课程章节
        //strategy.setInclude ("lesson"); //课时
        //strategy.setInclude ("coursecomment"); //课程评论列表
        //strategy.setInclude ("coursecomment"); //课程评论列表
        //strategy.setInclude ("orders"); //订单
        //strategy.setInclude ("orderdetail"); //订单明细
        //strategy.setInclude ("buycar"); //购物车
        //strategy.setInclude ("coursecomment"); //课程评论
        //strategy.setInclude ("coursescore"); //课程评分
        // 优惠券
        //strategy.setInclude ("coupon"); //优惠券基本信息
        //strategy.setInclude ("couponrange"); //优惠券使用范围
        //strategy.setInclude ("coursepackage"); //课程包管理
        //strategy.setInclude ("packageimportcourse"); //课程包包含课程
        //strategy.setInclude ("coupontype"); //优惠券类型
        //strategy.setInclude ("couponactivityref"); //优惠券与活动的对应关系
        //strategy.setInclude ("couponactivetype"); //优惠券发放方式
        //strategy.setInclude ("couponactivity"); //优惠券发放活动
        //strategy.setInclude ("couponlog"); //优惠券使用记录日志
        //strategy.setInclude ("couponrecive"); //优惠券领取记录
        // 销售
        /*strategy.setInclude ("saler"); //销售人员
        strategy.setInclude ("department"); //销售团队管理*/
        // 直播记录

        // strategy.setInclude ("liverecord"); //*/
        // strategy.setInclude("offlineshowattrconfig"); //课程信息显示设置
        strategy.setInclude("takeslice"); //统一提成比例
        // 微信小程序  前置-课程详情页面（微信端）结束
        // 设置要映射的表名s
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        // strategy.setEntityLombokModel (true);
        // 自动lombok；
        // strategy.setLogicDeleteFieldName ("deleted");
        // 自动填充配置 时间
        // TableFill gmtCreate = new TableFill ("create_time", FieldFill.INSERT);
        // TableFill gmtModified = new TableFill ("create_time", FieldFill.INSERT_UPDATE);
        // ArrayList<TableFill> tableFills = new ArrayList<> ();
        // tableFills.add (gmtCreate);
        // tableFills.add (gmtModified);
        // strategy.setTableFillList (tableFills);
        // 乐观锁
        // strategy.setVersionFieldName ("version");
        strategy.setRestControllerStyle(true);
        strategy.setControllerMappingHyphenStyle(true);
        // localhost:8080/hello_id_2
        mpg.setStrategy(strategy);
        mpg.execute();
        //执行
    }
}


